#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "genero.h"
#include "duracion.h"
#include "musica.h"

// Constructor
TMusica musica_crear(char *nombre, TGenero g, TDuracion d)
{
   TMusica f = malloc(sizeof(Musica));
   f->nombre = malloc(sizeof(char) * strlen(nombre));
   if ( f != NULL ) {
      musica_set_nombre(f, nombre);//strcpy(f->nombre, nombre) 
      musica_set_genero(f,g);
      musica_set_duracion(f,d);
      
   }
   return f;
}

// Destructor
void musica_destruir(TMusica f)
{
   if ( f != NULL ) 
      free(f);
  
}

void musica_imprimir(TMusica f)
{
   if ( f != NULL ){
      printf("Nombre: %s\n", musica_get_nombre(f));
      genero_imprimir(f->genero); //musica_get_genero(f);
      //printf("genero: %s\n", f->genero->nombre);
      duracion_imprimir(musica_get_duracion(f));
      printf(".................\n");
   }
}

void musica_set_nombre(TMusica f, char *nombre)
{
   if ( f != NULL ) {
     f->nombre = malloc(sizeof(char) * strlen(nombre));
     strcpy(f->nombre, nombre); //f->nombre = nombre;
   }
}

char *  musica_get_nombre(TMusica f)
{
   if ( f != NULL )
      return f->nombre;
}


void musica_set_genero(TMusica f, TGenero g)
{
   if ( f != NULL ){
    f->genero = g;
   }
} 

TGenero  musica_get_genero(TMusica f)
{
   if ( f != NULL )
      return f->genero;
}

void musica_set_duracion(TMusica f, TDuracion d)
{
   if ( f != NULL ){
    f->duracion = d;
   }
} 

TDuracion  musica_get_duracion(TMusica f)
{
   if ( f != NULL )
      return f->duracion;
}



